/* generated javascript */
var skin = 'vector';
var stylepath = '/skins';

/* MediaWiki:Common.js */
addOnloadHook(function($) {
	return function() {
		$('.tabdiv > div').hide();
		$('.tabdiv').each(function() {
			$(this).find('> ul li').addClass('inactive');
			$(this).find('> ul li:first').removeClass('inactive');
			$(this).find('> ul li:first').addClass('active');
			$(this).find('> div:first').show();
		});
	 	$('.tabdiv > ul li').each(function() {
			var a = $(this).find('a:first');
			var target = a.attr('href');
			$(a).attr('href', ''); // Opera hates real hrefs
			$(this).click(function() {
				$(this).parent().find('> li').removeClass('active');
				$(this).parent().find('> li').addClass('inactive');
				$(this).parent().parent().find('> div').hide();
				$(this).addClass('active');
				$(this).removeClass('inactive');
				$(target).show();
				return false;
			});
		});
	}
}(jQuery));

/** Collapsible tables *********************************************************
 *
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               [[Wikipedia:NavFrame]].
 *  Maintainers: [[User:R. Koot]]
 */
 
var autoCollapse = 2;
var collapseCaption = "hide";
var expandCaption = "show";
 
function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );
 
    if ( !Table || !Button ) {
        return false;
    }
 
    var Rows = Table.rows;
 
    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}
 
function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );
 
    for ( var i = 0; i < Tables.length; i++ ) {
        if ( hasClass( Tables[i], "collapsible" ) ) {
 
            /* only add button and increment count if there is a header row to work with */
            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
            if (!HeaderRow) continue;
            var Header = HeaderRow.getElementsByTagName( "th" )[0];
            if (!Header) continue;
 
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
 
            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );
 
            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";
            Button.className = "collapseButton";  /* Khenta Edit */ //Styles are declared in Common.css 
            ButtonLink.style.color = Header.style.color;
            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );
 
            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );
 
            Header.insertBefore( Button, Header.childNodes[0] );
            tableIndex++;
        }
    }
 
    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {
            collapseTable( i );
        } 
        else if ( hasClass( NavigationBoxes[i], "innercollapse" ) ) {
            var element = NavigationBoxes[i];
            while (element = element.parentNode) {
                if ( hasClass( element, "outercollapse" ) ) {
                    collapseTable ( i );
                    break;
                }
            }
        }
    }
}
 
addOnloadHook( createCollapseButtons );
 
 
/** Dynamic Navigation Bars (experimental) *************************************
 *
 *  Description: See [[Wikipedia:NavFrame]].
 *  Maintainers: UNMAINTAINED
 */
 
// set up the words in your language
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
 
// shows and hides content and picture (if available) of navigation bars
// Parameters:
//     indexNavigationBar: the index of navigation bar to be toggled
function toggleNavigationBar(indexNavigationBar)
{
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
            if (hasClass(NavChild, 'NavContent') || hasClass(NavChild, 'NavPic')) {
                NavChild.style.display = 'block';
            }
        }
        NavToggle.firstChild.data = NavigationBarHide;
    }
}
 
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
    var indexNavigationBar = 0;
    // iterate over all < div >-elements 
    var divs = document.getElementsByTagName("div");
    for (var i = 0; NavFrame = divs[i]; i++) {
        // if found a navigation bar
        if (hasClass(NavFrame, "NavFrame")) {
 
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
 
            var isCollapsed = hasClass( NavFrame, "collapsed" );
            /*
             * Check if any children are already hidden.  This loop is here for backwards compatibility:
             * the old way of making NavFrames start out collapsed was to manually add style="display:none"
             * to all the NavPic/NavContent elements.  Since this was bad for accessibility (no way to make
             * the content visible without JavaScript support), the new recommended way is to add the class
             * "collapsed" to the NavFrame itself, just like with collapsible tables.
             */
            for (var NavChild = NavFrame.firstChild; NavChild != null && !isCollapsed; NavChild = NavChild.nextSibling) {
                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                    if ( NavChild.style.display == 'none' ) {
                        isCollapsed = true;
                    }
                }
            }
            if (isCollapsed) {
                for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
                    if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {
                        NavChild.style.display = 'none';
                    }
                }
            }
            var NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
 
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(var j=0; j < NavFrame.childNodes.length; j++) {
                if (hasClass(NavFrame.childNodes[j], "NavHead")) {
                    NavFrame.childNodes[j].appendChild(NavToggle);
                }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
}
 
addOnloadHook( createNavigationBarToggleButton );

 
 
/* Test if an element has a certain class **************************************
 *
 * Description: Uses regular expressions and caching for better performance.
 * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]]
 */
 
var hasClass = (function () {
    var reCache = {};
    return function (element, className) {
        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
    };
})();


/* Make special users have a different color */
function makeSpecialUsersColored()
{
	var SpecialColor = "#880";
	var SpecialColorNoexist = "#880";
	var SpecialGroups = [
	"sysop",
	"bureaucrat",
	"checkuser",
	"minion"
	];

	/* Do not edit anything under here */
	
	if (!(((wgNamespaceNumber % 2) == 1) || (wgNamespaceNumber == -1) || (wgAction == "history") || (location.search.indexOf("oldid") != -1))) // If the page is not a talk, special or history page
		return; // Exit the function

	Array.prototype.unique = function()
	{
		var r = new Array();
		o:for(i = 0, n = this.length; i < n; i++)
		{
			for (x = 0, y = r.length; x < y; x++)
				if (r[x] == this[i])
					continue o;
			r[r.length] = this[i];
		}
		return r;
	}

	var SpecialUsers = new Array();
	var SpecialUsersi = 0;

	var NeedUsers = false;
	if (document.cookie.length > 0)
	{
		c_start = document.cookie.indexOf("SpecialUsers=");
		if (c_start != -1)
		{
			c_start += 13;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1)
				c_end = document.cookie.length;
			SpecialUsers = unescape(document.cookie.substring(c_start, c_end)).split("/");
			SpecialUsersi = SpecialUsers.length;
		}
		else
			NeedUsers = true;
	}
	else
		NeedUsers = true;

	if (NeedUsers)
	{
		/* Start AJAX for obtaining special users */
		if (window.XMLHttpRequest)
			xmlhttp = new XMLHttpRequest(); // IE7+, Firefox, Chrome, Opera, Safari
		else
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // IE5, 6

		for (i = 0; i < SpecialGroups.length; i++)
		{
			xmlhttp.open("GET", "api.php?action=query&format=xml&list=allusers&augroup="+SpecialGroups[i], false);
			xmlhttp.send();
			var response = xmlhttp.responseXML;
			if (response.getElementsByTagName("error").length != 0) // Did an error occur?
				continue;
	
			/* Start processing response */
			if (response.getElementsByTagName("query")[0].childNodes[0].childElementCount == 0) // Is the user group empty
				continue;
			var users = response.getElementsByTagName("u");
			while (true)
			{
				for (c = 0; c < users.length; c++)
					SpecialUsers[c + SpecialUsersi] = users[c].getAttribute("name");
				SpecialUsersi += c;
				if (response.getElementsByTagName("query-continue").length == 0) // Check if there is a <query-continue> tag for 10+ users
					break;
		
				xmlhttp.open("GET", "api.php?action=query&format=xml&list=allusers&augroup="+SpecialGroups[i]+"&aufrom="+response.getElementsByTagName("query-continue")[0].childNodes[0].getAttribute("aufrom"), false);
				xmlhttp.send();
				response = xmlhttp.responseXML;
				users = response.getElementsByTagName("u");
			}
		}
		SpecialUsers = SpecialUsers.unique(); // We only need one of each user in the array
		var exdate = new Date();
		exdate.setDate(exdate.getDate() + 7);
		document.cookie = "SpecialUsers=" + escape(SpecialUsers.join("/")) + ";expires=" + exdate.toUTCString();
	}
	/* End AJAX for obtaining special users */

	var As = document.getElementsByTagName("a");
	for (i = 0; i < As.length; i++)
	{
		var user = As[i].getAttribute("title");
		if (user == null)
			continue;
		for (d = 0; d < SpecialUsersi; d++)
			if (user == ("User:" + SpecialUsers[d]))
			{
				As[i].style.color = SpecialColor;
				As[i].setAttribute("title", "User:" + SpecialUsers[d] + " (Special User)");
				break;
			}
			else if (user == ("User:" + SpecialUsers[d] + " (page does not exist)"))
			{
				As[i].style.color = SpecialColorNoexist;
				As[i].setAttribute("title", "User:" + SpecialUsers[d] + " (Special User) (page does not exist)");
				break;
			}
	}
}
addOnloadHook(makeSpecialUsersColored);

/* Mouse-over boxes (Work-in-progress) */
function initmouseoverbox()
{
	var affectedSpans = new Array();
	var affectedSpansi = 0;
	var spans = document.getElementsByTagName("span");
	for (i = 0; i < spans.length; i++)
	{
		if (spans[i].getAttribute("class") == null)
			continue;
		var classes = spans[i].getAttribute("class").split(" ");
		for (c = 0; c < classes.length; c++)
			if (classes[c] == "mouseover-wrapper")
			{
				affectedSpans[affectedSpansi] = i;
				affectedSpansi++;
				break;
			}
	}

	var content = null;
	var mouseover = null;
	var innerDivs = null;
	for (i = 0; i < affectedSpansi; i++)
	{
		innerDivs = spans[affectedSpans[i]].getElementsByTagName("div");
		for (c = 0; c < innerDivs.length; c++)
			if (innerDivs[c].getAttribute("id") == "mouseover-content")
				content = innerDivs[c];
			else if (innerDivs[c].getAttribute("id") == "mouseover-trigger")
				trigger = innerDivs[c];
		content.style.display = "none";

		/* Replace <p>s inside the trigger with <br />s */
		var ps = trigger.getElementsByTagName("p");
		var parent = null;
		var innerHTML = null;
		var e1 = null;
		var e2 = null;
		for (c = 0; c < ps.length; c++)
		{
			var parent = ps[c].parentNode;
			var innerHTML = ps[c].innerHTML;

			e1 = document.createElement("br");
			parent.replaceChild(e1, ps[c]);
			e2 = document.createElement("br");
			e2.setAttribute("class", "mouseover-p");
			parent.insertBefore(e2, e1.nextSibling);
			e1 = document.createTextNode(innerHTML);
			parent.insertBefore(e1, e2.nextSibling);
			e2 = document.createElement("br");
			parent.insertBefore(e2, e1.nextSibling);
			e1 = document.createElement("br");
			e1.setAttribute("class", "mouseover-p");
			parent.insertBefore(e1, e2.nextSibling);
		}

		trigger.setAttribute("onmouseover", "mouseoverbox(" + i + ", this, event);");
		trigger.setAttribute("onmousemove", "mouseoverbox(" + i + ", this, event, true);");
		trigger.setAttribute("onmouseout", "mouseoverbox(" + i + ", this);");
	}
}
addOnloadHook(initmouseoverbox);

var mouseoverboxes = new Array();
function mouseoverFade(id, fadelength, lastTick) // Had to make it global becuase of setTimeout
{
	if (lastTick !== undefined)
	{
		var curTick = new Date().getTime();
		var elapsedTicks = curTick - lastTick;

		if (mouseoverboxes[id].fadeState == 1 && mouseoverboxes[id].style.display != "block")
			mouseoverboxes[id].style.display = "block";

		if (mouseoverboxes[id].fadeTimeLeft <= elapsedTicks)
		{
			mouseoverboxes[id].style.opacity = mouseoverboxes[id].fadeState == 1 ? 1 : 0;
			if (mouseoverboxes[id].fadeState == -1)
				mouseoverboxes[id].style.display = "none";
			mouseoverboxes[id].fadeState = mouseoverboxes[id].fadeState == 1 ? 2 : -2;
			return;
		}

		mouseoverboxes[id].fadeTimeLeft -= elapsedTicks;
		var newOpVal = mouseoverboxes[id].fadeTimeLeft/fadelength;
		if (mouseoverboxes[id].fadeState == 1)
			newOpVal = 1 - newOpVal;

		mouseoverboxes[id].style.opacity = newOpVal;

		setTimeout("mouseoverFade(" + id + ", " + fadelength + ", " + curTick + ")", 20);
		return;
	}
	if (mouseoverboxes[id].fadeState == undefined)
		if (mouseoverboxes[id].style.opacity == undefined || mouseoverboxes[id].style.opacity == "" || mouseoverboxes[id].style.opacity == 1)
			mouseoverboxes[id].fadeState = 2;
		else
			mouseoverboxes[id].fadeState = -2;

	if (mouseoverboxes[id].fadeState == 1 || mouseoverboxes[id].fadeState == -1)
	{
		mouseoverboxes[id].fadeState = mouseoverboxes[id].fadeState == 1 ? -1 : 1;
		mouseoverboxes[id].fadeTimeLeft = fadelength - mouseoverboxes[id].fadeTimeLeft;
	}
	else
	{
		mouseoverboxes[id].fadeState = mouseoverboxes[id].fadeState == 2 ? -1 : 1;
		mouseoverboxes[id].fadeTimeLeft = fadelength;
		setTimeout("mouseoverFade(" + id + ", " + fadelength + ", " + new Date().getTime() + ")", 20);
	}  
}
function mouseoverbox(id, obj, event, update)
{
	function updatexy(id, event)
	{
		var x, y;
		switch (mouseoverboxes[id].settings["anchor"])
		{
			case 1:
				y = (-mouseoverboxes[id].offsetHeight) + (mouseoverboxes[id].settings["mody"] == 0 ? -10 : mouseoverboxes[id].settings["mody"]);
				x = (-mouseoverboxes[id].offsetWidth) + (mouseoverboxes[id].settings["modx"] == 0 ? -10 : mouseoverboxes[id].settings["modx"]);
				break;
			case 2:
				y = (-mouseoverboxes[id].offsetHeight) + (mouseoverboxes[id].settings["mody"] == 0 ? -10 : mouseoverboxes[id].settings["mody"]);
				x = (-(mouseoverboxes[id].offsetWidth/2)) + mouseoverboxes[id].settings["modx"];
				break;
			case 3:
				y = (-mouseoverboxes[id].offsetHeight) + (mouseoverboxes[id].settings["mody"] == 0 ? -10 : mouseoverboxes[id].settings["mody"]);
				x = mouseoverboxes[id].settings["modx"] == 0 ? 10 : mouseoverboxes[id].settings["modx"];
				break;
			case 4:
				y = (-(mouseoverboxes[id].offsetHeight/2)) + mouseoverboxes[id].settings["mody"];
				x = (-mouseoverboxes[id].offsetWidth) + (mouseoverboxes[id].settings["modx"] == 0 ? -10 : mouseoverboxes[id].settings["modx"]);
				break;
			case 5:
				y = (-(mouseoverboxes[id].offsetHeight/2)) + mouseoverboxes[id].settings["mody"];
				x = (-(mouseoverboxes[id].offsetWidth/2)) + mouseoverboxes[id].settings["modx"];
				break;
			case 6:
				y = (-(mouseoverboxes[id].offsetHeight/2)) + mouseoverboxes[id].settings["mody"];
				x = mouseoverboxes[id].settings["modx"] == 0 ? 10 : mouseoverboxes[id].settings["modx"];
				break;
			case 7:
				y = mouseoverboxes[id].settings["mody"] == 0 ? 10 : mouseoverboxes[id].settings["mody"];
				x = (-mouseoverboxes[id].offsetWidth) + (mouseoverboxes[id].settings["modx"] == 0 ? -10 : mouseoverboxes[id].settings["modx"]);
				break;
			case 8:
				y = mouseoverboxes[id].settings["mody"] == 0 ? 10 : mouseoverboxes[id].settings["mody"];
				x = (-(mouseoverboxes[id].offsetWidth/2)) + mouseoverboxes[id].settings["modx"];
				break;
			case 9:
			default:
				y = mouseoverboxes[id].settings["mody"] == 0 ? 10 : mouseoverboxes[id].settings["mody"];
				x = mouseoverboxes[id].settings["modx"] == 0 ? 10 : mouseoverboxes[id].settings["modx"];
				break;
		}

		mouseoverboxes[id].style.top = (event.clientY + y) + "px";
		mouseoverboxes[id].style.left = (event.clientX + x) + "px";
	}

	if (mouseoverboxes[id] === undefined)
	{
		mouseoverboxes[id] = document.createElement("div");

		var settings = new Array();
		/* Defaults */
		settings["style"] = "";
		settings["anchor"] = 9;
		settings["modx"] = 0;
		settings["mody"] = 0;
		settings["fade-length"] = 200.0;

		var divs = obj.parentNode.getElementsByTagName("div");
		for (i = 0; i < divs.length; i++)
			if (divs[i].getAttribute("id") == "mouseover-custom")
			{
				var spans = divs[i].getElementsByTagName("span");
				for (c = 0; c < spans.length; c++)
					switch (spans[c].getAttribute("id"))
					{
						case "mouseover-custom-style":
							if (spans[c].innerHTML != "")
								settings["style"] = spans[c].innerHTML;
							break;
						case "mouseover-custom-anchor":
							if (spans[c].innerHTML != "")
								settings["anchor"] = parseInt(spans[c].innerHTML);
							break;
						case "mouseover-custom-modx":
							if (spans[c].innerHTML != "")
								settings["modx"] = parseInt(spans[c].innerHTML);
							break;
						case "mouseover-custom-mody":
							if (spans[c].innerHTML != "")
								settings["mody"] = parseInt(spans[c].innerHTML);
							break;
						case "mouseover-custom-fade-length":
							if (spans[c].innerHTML != "")
								settings["fade-length"] = parseInt(spans[c].innerHTML);
							break;
					}
				break;
			}
			else if (divs[i].getAttribute("id") == "mouseover-content")
				mouseoverboxes[id].innerHTML = divs[i].innerHTML;

		mouseoverboxes[id].setAttribute("class", "mouseover-box");
		mouseoverboxes[id].style.cssText = settings["style"];
		mouseoverboxes[id].style.display = "none";
		mouseoverboxes[id].style.position = "fixed";
		mouseoverboxes[id].style.opacity = 0;
		mouseoverboxes[id].settings = settings;
		document.getElementById("bodyContent").appendChild(mouseoverboxes[id]);
	}

	if (event !== undefined)
	{
		updatexy(id, event);
		if (mouseoverboxes[id].style.display != "block")
			mouseoverboxes[id].style.display = "block";
		if (update == true)
			return;
	}

	mouseoverFade(id, mouseoverboxes[id].settings["fade-length"]);
}

/* Remove paragraths in any object that has a class named "no-para" */
function removeParas()
{
	var affectedEs = document.getElementsByClassName("no-para"); // E for Element

	var Ps = null;
	var parent = null;
	var dummyNode = null;
	for (i = 0; i < affectedEs.length; i++)
	{
		Ps = affectedEs[i].getElementsByTagName("p");
		do
		{
			parent = Ps[0].parentNode;
			dummyNode = document.createElement("span");
			dummyNode.innerHTML = Ps[0].innerHTML;
			parent.replaceChild(dummyNode, Ps[0]);
		} while (Ps.length != 0);
	}
}
addOnloadHook(removeParas);

/* Fixes the extra whitespace at the end (if there is one) */
function divPreFix()
{
	var Es = document.getElementsByClassName("pre"); // E for Element
	for (i = 0; i < Es.length; i++)
		if (Es[i].tagName == "DIV") // Make sure it is a div tag
			if (Es[i].lastChild.textContent == "\n") // Check for the whitespace
				Es[i].removeChild(Es[i].lastChild);
}
addOnloadHook(divPreFix);

//
// Timers JS
//
/*
 JavaScript module for calculating Mabinogi schedules.

 Copyright 2011 Saiyr (me@saiyr.org)

 License: http://www.opensource.org/licenses/mit-license.php

 Original work by Kakurady (Moongates, Price) and Huijun (Rua).
*/
(function(a,n){function e(a,b,e){return function(f,k){var g,h;g=c.o(f).G;var d=f-f%l;h=Math.floor((f-b)/l)%a.length;e&&(g<6?d-=6*i:d+=18*i);h<0&&(h+=a.length);g=d;for(var d=[],j=0;j<k;j++)d.push({time:new Date(g+l*j),item:a[(j+h)%a.length]});return d}}var i=9E4,l=i*24,k=Date.parse("Mar 23, 2008 22:21:00 GMT"),m=[a.a.d,a.a.c,a.a.e,a.a.i,a.a.h,a.a.d,a.a.g,a.a.j,a.a.f,a.a.h,a.a.d,a.a.e,a.a.i,a.a.c,a.a.h,a.a.d,a.a.f,a.a.g,a.a.j,a.a.d,a.a.i,a.a.e,a.a.g,a.a.f],p=Date.parse("Mar 24, 2008 00:00:00 GMT"),
c={A:function(o){return(o||new Date).getTime()+a.D},m:e(m,k,!0),w:e([a.b.e,a.b.l,a.b.r,a.b.k,a.b.p,a.b.n,a.b.t,a.b.c,a.b.u,a.b.n,a.b.k,a.b.q,a.b.s,a.b.l],p,!1),z:e(function(a){var b=a.B,a=a.F;return[b,b,b,a,b,b,b,b,a,b,b,a,b,a,a,b,a,a,a,b,b,b,b,b,b,b,a,b,a,b,b,a,b,b,b,a,b,b,b,a,b,b,a]}(a.C),k,!0),o:function(a){return{hour:Math.floor(a/i)%24,minute:Math.floor(a/1500)%60}},v:function(c){for(var c=this.m(c,m.length),b=0;b<c.length;b++)if(c[b].item===a.a.c)return b}};n.mabiTimers=c;c.getServerTimeMillis=
c.A;c.getMoonGates=c.m;c.getPriceLocations=c.w;c.getRuaStatuses=c.z;c.serverTimeToErinnTime=c.o;c.getNextCeoMoonGate=c.v})({a:{e:"Tir Chonaill",g:"Dunbarton",f:"Bangor",h:"Emain Macha",i:"Taillteann",d:"Tara",c:"Ceo Island",j:"Port Ceann"},b:{e:"Outside Tir Chonaill Inn",l:"Dugald Aisle Logging Camp Hut",r:"Dunbarton East Potato Field",k:"Dragon Ruins - House at 5 o'clock ",p:"Bangor Bar",n:"Sen Mag 5th house from West",t:"Emain Macha - Alley Behind Weapon Shop",c:"Ceo Island",u:"Emain Macha - Island in South Pathway",
q:"Outside Barri Dungeon",s:"Dunbarton School Stairway"},C:{B:"Resting",F:"Working"},D:-252E5},window);

// GA

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-32391473-1']);
_gaq.push(['_setDomainName', 'mabinogiworld.com']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

/* MediaWiki:Vector.js */
/* Any JavaScript here will be loaded for users using the Vector skin */